package com.aiapphub.SystemCode.service;

/**
 * Workflow 流式响应处理器接口
 * 用于处理 Workflow API 的流式响应事件
 */
public interface WorkflowStreamResponseHandler {
    /**
     * 处理文本片段事件
     * @param text 文本内容
     * @param fromVariableSelector 文本来源路径
     */
    void onTextChunk(String text, String[] fromVariableSelector);
    
    /**
     * 处理工作流开始事件
     * @param workflowRunId 工作流执行ID
     * @param taskId 任务ID
     * @param workflowId 工作流ID
     */
    void onWorkflowStarted(String workflowRunId, String taskId, String workflowId);
    
    /**
     * 处理节点开始事件
     * @param nodeId 节点ID
     * @param nodeType 节点类型
     * @param title 节点名称
     * @param index 执行序号
     */
    void onNodeStarted(String nodeId, String nodeType, String title, int index);
    
    /**
     * 处理节点完成事件
     * @param nodeId 节点ID
     * @param status 执行状态
     * @param outputs 输出内容
     */
    void onNodeFinished(String nodeId, String status, Object outputs);
    
    /**
     * 处理工作流完成事件
     * @param workflowRunId 工作流执行ID
     * @param status 执行状态
     * @param outputs 输出内容
     */
    void onWorkflowFinished(String workflowRunId, String status, Object outputs);
    
    /**
     * 处理 TTS 音频流事件
     * @param messageId 消息ID
     * @param audio 音频内容（Base64编码）
     */
    void onTtsMessage(String messageId, String audio);
    
    /**
     * 处理 TTS 音频流结束事件
     * @param messageId 消息ID
     */
    void onTtsMessageEnd(String messageId);
    
    /**
     * 处理错误
     * @param error 错误异常
     */
    void onError(Exception error);
    
    /**
     * 处理完成
     */
    void onComplete();
}

